package com.dds.system.mapper.app;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.dds.system.domain.app.AppUserScoreDetail;
import org.apache.ibatis.annotations.Param;

/**
 * 用户积分明细Mapper接口
 * 
 * @author gaolianjie
 * @date 2021-04-01
 */
public interface AppUserScoreDetailMapper 
{
    /**
     * 查询用户积分明细
     * 
     * @param id 用户积分明细ID
     * @return 用户积分明细
     */
    public AppUserScoreDetail selectAppUserScoreDetailById(Integer id);

    /**
     * 查询用户积分明细列表
     * 
     * @param appUserScoreDetail 用户积分明细
     * @return 用户积分明细集合
     */
    public List<AppUserScoreDetail> selectAppUserScoreDetailList(AppUserScoreDetail appUserScoreDetail);

    /**
     * 新增用户积分明细
     * 
     * @param appUserScoreDetail 用户积分明细
     * @return 结果
     */
    public int insertAppUserScoreDetail(AppUserScoreDetail appUserScoreDetail);

    /**
     * 修改用户积分明细
     * 
     * @param appUserScoreDetail 用户积分明细
     * @return 结果
     */
    public int updateAppUserScoreDetail(AppUserScoreDetail appUserScoreDetail);

    /**
     * 删除用户积分明细
     * 
     * @param id 用户积分明细ID
     * @return 结果
     */
    public int deleteAppUserScoreDetailById(Integer id);

    /**
     * 批量删除用户积分明细
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteAppUserScoreDetailByIds(Integer[] ids);

    int getData(
            @Param("changeType") String changeType,
            @Param("changeScene") String changeScene,
            @Param("startTime") String startTime,
            @Param("endTime") String endTime
    );

    Map<String, BigDecimal> getValidScore(String userId);
}
